== ARM speex==
* [http://www.mail-archive.com/linphone-users@nongnu.org/msg02684.html topic]: saying we need to recompile speex library to optimize for non-float point calculation.
== pulse audio ==
* [http://sipsimpleclient.ag-projects.com/projects/sipsimpleclient/wiki/DesignAEC pulse audio]: echo canceller.

== tuning linphone options ==
http://www.linphone.org/eng/documentation/dev/tuning-linphone.html
== echo cancellation performance issue ==
* '''Experiment''': 
*: Sending voice with PCMA/U codec to server with echo cancellation on. 
* '''Result''': 
*# We found echo cancellation uses a lot of CPUs. echo: 55.37%, pcma encoder: 1.98%
*# pcma/u is very light codec. And also echo cancellation eat more cpu for opus codec.
* '''Conclusion''':
*# We disable echo for now.
* '''require tools''':
** valgrind
** kcachegrind
** [http://xpapad.wordpress.com/2009/05/18/debugging-and-profiling-your-cc-programs-using-free-software/ tutorial tutorial]
* '''Future investigation''':
*# Check speex echo performance
*# Check all parameters are correct
*# Check if it caused by empty in-audio stream
*# Check if it caused by time interval
* '''Pictures and data''':
** echo cancellation cost diagram: [[File:Echo_cancellation_per_vs_PCMA_U.png]]
** PCMA/U cost diagram: [[File:echo_can_per_data_pcma.png]]
** Original data(callgrind format, but it must be renamed with .png for uploading purpose): <br/> [[File:Data.png]]